package com.nuanshui.heatedloan.fund.biz.dal.mapper;

import com.nuanshui.heatedloan.fund.model.UserPosBill;
import com.nuanshui.heatedloan.fund.vo.UserPosBillVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;

import java.util.List;


public interface UserPosBillMapper {
	

	/**
	 * 保存
	 * @param @param userPosBill
	 * @author guohao
	 * @date 2016年7月21日 上午11:24:03
	 * @since $
	 */
    void save(UserPosBill userPosBill);
	
    /**
     * 根据用户id 和状态获取
     * @param @param userId
     * @param @param status
     * @param @return
     * @author guohao
     * @date 2016年7月21日 上午11:21:15
     * @since $
     */
    List<UserPosBill> findByUserIdAndStatus(@Param("userId") String userId, @Param("status") int status, @Param("pager") Pageable pager);
	
    /**
     * 分页获取所有的记录
     * @param @param pager
     * @param @return
     * @author guohao
     * @date 2016年7月21日 下午3:00:07
     * @since $
     */
    List<UserPosBillVO> findAll(@Param("pager") Pageable pager);
	
	
	
	/**
	 * 根据业务员id分页获取
	 * @param @return
	 * @author guohao
	 * @date 2016年7月21日 下午3:53:32
	 * @since $
	 */
    List<UserPosBillVO> findBysalemanUserId(@Param("userId") String userId, @Param("pager") Pageable pager);
	
	/***
	 * 根据id获取一条记录
	 * @param @param id
	 * @param @return
	 * @author guohao
	 * @date 2016年7月21日 下午3:54:11
	 * @since $
	 */
    UserPosBillVO loadById(@Param("id") String id);
	
	/**
	 * 根据状态获取
	 * @param @param userId
	 * @param @return
	 * @author guohao
	 * @date 2016年7月21日 下午3:55:20
	 * @since $
	 */
    List<UserPosBillVO> findByStatus(@Param("status") Integer status, @Param("pager") Pageable pager);
	
	/**
	 * 审核凭证
	 * @param @return
	 * @author guohao
	 * @date 2016年7月21日 下午3:56:15
	 * @since $
	 */
    boolean auditProof(@Param("id") String id, @Param("status") Integer status);

	
	
	
	/**
	 * 审核用户pos机支付
	 * @param @param userPosBill
	 * @param @return
	 * @author guohao
	 * @date 2016年7月21日 下午3:23:37
	 * @since $
	 */
    boolean payEvidanceAudit(UserPosBill userPosBill);
	/**
	 * 根据交易号获取一个账单信息
	 * @param @param dealNum
	 * @param @return
	 * @author guohao
	 * @date 2016年7月21日 下午7:52:48
	 * @since $
	 */
    UserPosBillVO loadByDealNum(@Param("dealNum") String dealNum);
	
	/**
	 * 更新状态
	 * @param @param dealNum
	 * @param @param status
	 * @author guohao
	 * @date 2016年7月22日 上午11:44:42
	 * @since $
	 */
    void updateStatus(@Param("dealNum") String dealNum, @Param("status") Integer status);
}
